package com.ts.api.module.channel.service;

import com.ts.api.module.channel.entity.po.ChannelUserFormPO;
import com.ts.api.module.channel.entity.po.ChannelUserRegisterPO;

import java.util.List;

/**
 *  双写用户信息
 *
 *  @author Pan
 */
public interface DoubleWriteUserService {

    /**
     *  插入用户信息
     *  双写操作
     *  @param userRegisterPO
     *  @return
     */
    ChannelUserRegisterPO insertUser(ChannelUserRegisterPO userRegisterPO);

    /**
     *  更新用户信息
     *  双写操作
     *
     *  @param userRegisterPO
     */
    void updateUser(ChannelUserRegisterPO userRegisterPO);

    /**
     *  插入表单-如果原有表单存在则更新为最新
     *  双写操作
     *
     *  @param listChannelUserFormPO    用户表单实体集合
     */
    void batchInsertUserForm(List<ChannelUserFormPO> listChannelUserFormPO);

    /**
     * 删除某用户所有表单
     *
     * @param  userId   用户主键id
     * @return int
     */
    void removeByUserId(Long userId);
}
